Welcome to pandas!

3.10 获取form表单上传的文件和普通数据

form表单支持非文件数据(普通数据)和文件同时上传,此时上传方式是POST,编码方式必须是form-data

扩展:form表单发送POST请求时,默认请求体数据的编码格式是 application/x-www-form-urlencoded,可简称为urlencoded.

视图函数,文件数据使用request.FILES接收,非文件数据使用request.POST


URL

from django.urls import path

from . import views

urlpatterns = [

path("test",views.test),

#一旦调用test1, 那么kwargs将会以关键字的a=100,b=200这样的形式传给test1

path("test1", views.test1,kwargs={"a":100,"b":200}),

#test2(request,year,month

path( path("test2/ < year > / < month > ", views.test2),

path("test3", views.test3),

path("test5", views.test5),

path("test6", views.test6),

path("test7", views.test7),

path("test8", views.test8),

path("test9", views.test9),

path("test10", views.test10),

]


views

def test10(request):

name=request.POST.get("name11")

file=request.FILES.getlist("file22")

print(name,file)

return HttpResponse("显示form")


html10

< html >

< head >

< meta charset="UTF-8" >

< meta http-equiv="X-UA-Compatible" content="ie=edge" >

< title > Document < /title >

< /head >

< body >

< h1 > 上传文件 < /h1 >

< form action="http://127.0.0.1:8000/app03/test10" method="post" enctype="multipart/form-data" >

< P > 用户名: < input type="text" name="name11" > < /P >

< P > 请选择文件: < input type="file" name="file22" multiple > < /P >

< input type="submit" value="上传" >

< /form >

< /body >

< /html >

返回:

wei [ < InMemoryUploadedFile: ccapiserver.exe (application/x-msdownload) > , < InMemoryUploadedFile: comerr64.dll (application/x-msdownload) > ]

[01/Jun/2024 21:35:05] "POST /app03/test10 HTTP/1.1" 200 10